#pragma once
#include <list>
#include "EpilCodeBase.h"
#include "TCharSupport.h"

using namespace std;


class EpilParameterListCode : public EpilCodeBase
{
	EPIL_CODE_DECL( ParameterList );

public:
	EpilParameterListCode( const EpilLexLocation & location );
	virtual ~EpilParameterListCode();

	list<tstring> &						GetParameterNames()									{ return m_parameterNames; }
	const list<tstring> &				GetParameterNames() const							{ return m_parameterNames; }
	void								SetParameterNames( const list<tstring> & names )	{ m_parameterNames = names; }
	bool								HasVariousParameters() const						{ return m_hasVariousParameters; }
	void								SetVariousParameters( bool hasVariousParameters )	{ m_hasVariousParameters = hasVariousParameters; }

	virtual tstring						ToEpilCode( int indent = 0 ) const;

private:
	list<tstring>						m_parameterNames;
	bool								m_hasVariousParameters;
};